#ifndef _NEPTUNER_HTMLIZER_H_
#define _NEPTUNER_HTMLIZER_H_

#include "Scubwalker.h"

#include<string>

class HTMLizer: public Scubwalker
	//TODO: It's probably better for HTMLizer to walk the tree after parse, rather than work live.
{
public:
	Scope::Type m_eScopeType; 
	std::string m_sFilename;
	Symbol		m_xLastSymbol;
	bool		m_bScopeResolvingNeeded;
	int			m_nLines;
	bool		m_bUBoatOutput;
	
public:
	HTMLizer(void);
	~HTMLizer(void);
	void generateHeader();
	void generateFooter();

	void createSpanForScope();
	void createSpanEnd();
	void createNewline();

	virtual void offNewToken(Scope& inScope, Token& inToken);
	virtual void offScopeEntry(Scope& inNewScope, Scope& inOldScope);
    virtual void offScopeExit(Scope& inNewScope, Scope& inOldScope);
};

#endif
